#include "weizhi.h"
#include<QObject>
#include <QTransform>


weizhi::weizhi(int a, int b) : x(a), y(b) {}

int weizhi::x_() {
    return x;
}

// 返回y的值
int weizhi::y_() {
    return y;
}





// 主构造函数
character::character(QGraphicsItem* parent)
    : QObject(nullptr),      // 初始化 QObject
    QGraphicsPixmapItem(parent),  // 初始化图形项
    vx(0),
    vy(0),
    m_currenta(0)
{
    // 加载动画帧



    for(int i = 0; i < 4; ++i) {
        // 构建正确的资源路径，假设.qrc文件中已正确添加资源
        QString path = QString(":/find/c%1.png").arg(i); // 假设图片从c1.png开始

        if(!c_a[i].load(path)) {
            qDebug() << "Failed to load image:" << path;

            // 创建红色占位符并设置
            c_a[i] = QPixmap(50, 50);
            c_a[i].fill(Qt::red);
        }

        // 显示图像（假设您有一个QLabel或类似控件）
        setPixmap(c_a[i]);
    }


    // 初始化动画定时器
    m_animationTimer = new QTimer;
    connect(m_animationTimer, &QTimer::timeout, [this]{
        m_currenta = (m_currenta + 1) % 4;
        setPixmap(c_a[m_currenta]);
    });
    m_animationTimer->start(200);

    // 启用键盘交互
    setFlag(QGraphicsItem::ItemIsFocusable);
    setFocus();
}

void character::keyPressEvent(QKeyEvent* event)
{
    const int moveStep = 10;
    switch(event->key()) {
    case Qt::Key_A:  // 改为A键左移
        setPos(x() - moveStep, y());
        setTransform(QTransform().scale(-1, 1));
        break;
    case Qt::Key_D:  // 改为D键右移
        setPos(x() + moveStep, y());
        setTransform(QTransform());
        break;
    case Qt::Key_W:
        setPos(x(), y() - moveStep);
        break;
    case Qt::Key_S:
        setPos(x(), y() + moveStep);
        break;
    }
}
